package com.cblz.bd.common.core.entity.system;

import cn.hutool.json.JSONUtil;
import lombok.Data;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
 * {@code @Name:} IndexSearchParams
 * {@code @Description: }
 * {@code @Author:} by yanjieping
 * {@code @CreateDate:} 2022/11/16 - 周三
 */
@Data
public class IndexSearchParams {
    /**
     * 是否为树形结构
     */
    private Boolean isTree = true;
    /**
     * 分页
     */
    private Integer page;
    /**
     * 主键属性名称：前端默认id
     */
    private String initKey;
    /**
     * 查询值
     */
    private String initValue;
    /**
     * 拼接后的查询值
     */
    private List<String> initValues = Collections.emptyList();
    /**
     * 是否为选择器结构
     */
    private Boolean select;
    /**
     * 快速搜索集合
     */
    private String quick_search;

    public static IndexSearchParams Map2IndexSearch(Map params) {
        String jsonStr = JSONUtil.toJsonStr(params);
        return JSONUtil.toBean(jsonStr, IndexSearchParams.class);
    }

    public void setInitValue(String initValue) {
        String[] split = initValue.split(",-");
        if (split.length > 1) {
            setInitValues(Arrays.stream(split).toList());
        }
        this.initValue = initValue;
    }

    public void setInitValues(List<String> initValues) {
        this.initValues = initValues;
    }
}
